This disclosure relates generally to data communications over interconnect infrastructure, and particularly to reducing inter-packet gaps in packet-based input/output (I/O) data communications.
In application processing and enterprise computing environments, high-end computing commonly involves interconnect technologies with a relatively greater capacity to move data between nodes, such as between data processor nodes and I/O devices for a variety of data servers and computers. Not only do such environments require higher bandwidth and lower latencies; better utilization of available bandwidth than is currently available is also desirable. For enabling a packet-based I/O data communication, an interconnect device, such as a switch having a receiver, a crossbar and a transmitter may be deployed to transfer data responsive to available transfer grants.
However, a receiver may not be able to take an immediate advantage of one or more grants because the receiver may be serving a different requester other than the requester that initiated the earlier request. Additionally, if more grants than necessary to transmit the packet are issued, they may be discarded, wasting the crossbar bandwidth. In a short packet case, as an example, a transmitter may queue up more grants in a grant pipeline than are needed to transmit a packet, wasting bandwidth since the excess grants may cause inter-packet gaps. While handling data communications, a certain time may elapse depending upon data packet latency involved on a data path from the receiver to the transmitter and grant latency present from the transmitter to the receiver. Therefore, even though a destination-lookup request for a next packet may be sent as soon as packet header information is received, the next packet must await a grant, effectively introducing an inter-packet gap within the switch. Inadvertently, the excess grant from the previous packet may be incorrectly used, sending the next packet to an incorrect destination, as a result.
Thus, there is a continuing need for better ways to reduce gaps between packets in packet-based input/output data communications, especially in a switch.